package com.jcfk.eam.domain.dto.mould;

import com.jcfk.system.domain.dto.BaseDTO;
import lombok.*;
import org.hibernate.validator.constraints.Length;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 模具寿命邮件发送记录主表
 *
 * @author yrl
 * @email
 * @date 2025-07-28
 */
@Builder
@AllArgsConstructor
@NoArgsConstructor
@Getter
@Setter
public class EamMouldEmailRecordDTO extends BaseDTO {

    private static final long serialVersionUID = 1L;

    /**
     * 配置主键
     */
    @Length(max = 32, message = "配置主键长度不能超过32")
    private String configId;

    /**
     * 模具主键
     */
    @Length(max = 32, message = "模具主键长度不能超过32")
    private String assetId;

    /**
     * 模具编码
     */
    @Length(max = 32, message = "模具编码长度不能超过32")
    private String assetCode;

    /**
     * 模具名称
     */
    @Length(max = 50, message = "模具名称长度不能超过50")
    private String assetName;


    /**
     * 产品主键
     */
    private String productId;

    /**
     * 产品编码
     */
    private String productCode;

    /**
     * 产品名称
     */
    private String productName;
    /**
     * 阶段
     */
    private Integer sendStage;

    /**
     * 位置主键
     */
    @Length(max = 32, message = "位置主键长度不能超过32")
    private String locationId;

    /**
     * 位置
     */
    @Length(max = 50, message = "位置长度不能超过50")
    private String locationName;

    /**
     * 资产类型主键
     */
    @Length(max = 32, message = "资产类型主键长度不能超过32")
    private String assetTypeId;

    /**
     * 资产类型编码
     */
    @Length(max = 50, message = "资产类型编码长度不能超过50")
    private String assetTypeCode;

    /**
     * 资产类型名称
     */
    @Length(max = 50, message = "资产类型名称长度不能超过50")
    private String assetTypeName;

    /**
     * 资产寿命
     */
    private Integer assetLifespan;

    /**
     * 累计寿命
     */
    private Integer cumulativeUseTimes;

    /**
     * 提醒范围
     */
    private BigDecimal reminderScope;

    /**
     * 登记时间
     */
    private Date registrationTime;

    /**
     * 是否启用
     */
    private Integer enabled;

    /**
     * 删除标识
     */
    private Integer deleted;

    /**
     * 创建人姓名
     */
    @Length(max = 90, message = "创建人姓名长度不能超过90")
    private String createdUserName;

    /**
     * 更新人姓名
     */
    @Length(max = 90, message = "更新人姓名长度不能超过90")
    private String lastUpdatedUserName;

    private Integer status;


    /**
     * 批量添加子表
     */
    private List<EamMouldEmailRecordDetailDTO> details;

    private List<EamMouldEmailRecordFileDTO> files;

    /**
     * 批量删除id
     */
    private List<String> ids;

    public EamMouldEmailRecordDTO id(String id) {
        this.setId(id);
        return this;
    }
}
